package com.dbgs.cpic.data.security;


/**
 * 
 * AES加密解密
 * @author dai
 *
 */
public class AES128Utils {

	
	//默认为1122334455EDCAFD
	private static String ivAndKey = "1122334455EDCAFD"; //AES固定格式为128/192/256 bits.即：16/24/32bytes。DES固定格式为128bits，即8bytes。
	
	private static AES128 aes128 ; 
	
	//使用前先调用init
	public  static  void init(String key){
		if(aes128 == null){
			if(key == null){
				aes128 =  new AES128(ivAndKey);
			}else{
				aes128 = new AES128(key);
			}
		}
	}
	
	/**
	 * 加密
	 * @param text
	 * @return
	 */
	public static String encrypt(String text){
		try {
			if(aes128==null){
				init(null);
			}
			String encText = aes128.encrypt(text);
			return encText;
		} catch (Exception e) {
			System.out.println("中密出现异常");
			e.printStackTrace();
			return null;
		}
		
		
	}
	
	/**
	 * 解密
	 * @param text 密文
	 * @return
	 */
	public static String decrypt(String text){
		try {
			if(aes128==null){
				init(null);
			}
			String encText = aes128.decrypt(text);
			return encText;
		} catch (Exception e) {
			System.out.println("解密出现异常");
			e.printStackTrace();
			return null;
		}
		
		
	}

	public static String decrypt(byte[] content){
		if (content == null || content.length == 0) {
			return null;
		}
		try {
			if(aes128==null){
				init(null);
			}
			String encText = aes128.decrypt(new String(content));
			return encText;
		} catch (Exception e) {
			System.out.println("解密出现异常");
			e.printStackTrace();
			return null;
		}


	}
	
	

	
	
	
	
	
	


		 
	
}
